/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.edu.unicen.twitter.suggest.backend.recommendation.Ranking;

import ar.edu.unicen.twitter.suggest.backend.recommendation.Ranking.combinar.CombinadorPuntaje;
import ar.edu.unicen.twitter.suggest.commons.dtos.Usuario;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Alex
 */
public class RankingUsuariosCompuesto implements RankingUsuarios{

    RankingUsuarios ranking1;
    RankingUsuarios ranking2;
    CombinadorPuntaje combinador;

    public RankingUsuariosCompuesto(RankingUsuarios ranking1,RankingUsuarios ranking2, CombinadorPuntaje combinador){
        this.ranking1 = ranking1;
        this.ranking2 = ranking2;
        this.combinador = combinador;
    }
    
    @Override
    public Map<Usuario, Double> rank(List<Usuario> usuarios) {
        Map<Usuario, Double> scores1 = ranking1.rank(usuarios);
        Map<Usuario, Double> scores2 = ranking2.rank(usuarios);
        for(Usuario usuario:usuarios){
            Double score = combinador.combinar(scores1.get(usuario),scores2.get(usuario));
            scores1.put(usuario,score);
        }
        return scores1;
    }
}
